<?php
/**
 * docuemnntacion del archivo
 * @package Animales
 * @author Fernando Toledo
 * @filesource
 */


/**
 * clase base para animales
 * @package Animales
 */
class Animal {
  /**
   * cantidad de patas
   * @var integer
   */
  var $patas;

  var $color;

  private $nombre;

  /**
   * asigno el nombre a mi animal
   * @param string $nuevo_nombre nuevo nombre del animal
   */
  function setNombre($nuevo_nombre) {
    if ($this->validar_nombre($nuevo_nombre)) {
      $this->nombre = $nuevo_nombre;
    }
    else {
      throw new Exception('nombre invalido');
    }
  }

  private function validar_nombre($nombre) {

    if (strlen($nombre) <3 ) {
      return false;
    }
    return true;
  }

  /**
   * asigno el nombre a mi animal
   * @param string $nuevo_nombre nuevo nombre del animal
   */
  function getNombre() {
    return $this->nombre;
  }
}

/**
 * clase perro blalbalba
 * balbalbalba
 * @package Animales
 */
class Perro extends Animal {


  public $raza;

  public function __construct($nombre) {
    $this->raza = "Sin asignar";
    $this->setNombre($nombre);
  }
  /**
   * orden para que camine el perro
   * @param integer $pasos cantidad de pasos a caminar
   * @return boolen indica si el perro camino.
   */
  function caminar($pasos) {

    return true;

  }
}
$miPerro = new Perro('Cucho');
$miPerro->nombre = "hola";
$miPerro->raza = "TerBal";
$nombre = $miPerro->getNombre();
echo "nombre de perro: " .  $nombre. "\n";
?>